from django.shortcuts import render
from django.http import HttpResponse
from product.models import Product
# from django.shortcuts import get_object_or_404
# 定义添加函数
def productView(request):
    Product.objects.create(
        product_name = '小米yu6',
        product_price = 10800.00,
        product_popularity = 100,
        product_stock = 1000,
        is_active = False
    )
    # print(product_name)
    return HttpResponse('OK')
# Create your views here.
# 定义修改函数
def productupdataView(request):
    # 定义修改函数,用到模型类.objects.get()方法
    # 先查询再修改再保存
    Product.objects.filter(pk=25).update(product_name='小米2000',product_price=2000.00)
    return HttpResponse('修改成功')

# 定义删除函数
def productdeleteView(request):
    # 定义删除函数,用到模型类.objects.get()方法
    # 先查询再删除再保存
    Product.objects.filter(pk=27).delete()
    return HttpResponse('删除成功')

def index(request,num1,num2):
    # 定义查询函数,用到模型类.objects.get()方法
    # 先查询再修改再保存
    return HttpResponse('欢迎来到商品管理系统')

# 定义关键字参数的视图函数
def year_month_phone(request,year,month,phone):
    return HttpResponse(f"生产日期{year}--{month},手机号{phone}")

# 定义查询字符串
def queryview1(request):
    keyword = request.GET.get('keyword')
    print(request.GET)
    # keyword = request.GET.get('keyword')
    return HttpResponse(f'查询成功,名字为{keyword}')

# 定义表单，POST请求,对于非标单类型，用request.body接收,然后用json.loads()方法解析
def postView(request):
    # 用两个变量接收表单数据
    username = request.POST.get('username')
    password = request.POST.get('password')
    return HttpResponse(f'用户名{username},密码{password}')
# 定义一个Login函数，演示method属性的用法，分别用POST表单请求和GET请求
def Login(requsts):
    if requests.method =='POST':
        # 用变量接收文件
        files = requsts.FILES.get('files')
        if files:
            print('文件名：',files.name)
            print('文件大小',files.size)
            # 打开文件，保存到本地
            with open(files.name,'wb') as f:
                for chunk in files.chunks():
                    f.write(chunk)
                return HttpResponse('文件上传成功')
        username = requests.POST.get('username')
        password = requests.POST.get('password')
        return HttpResponse(f'用户名{username},密码{password}')
    elif requests.method =='GET':
        username = requests.GET.get('username')
        # 这里演示user属性的用法
        user = requests.user
        return HttpResponse('请使用POST表单请求')
# 定义非标单 body请求
def bodyView(request):
    json_str = request.body
    # json字符串转python字典
    data = json.loads(json_str)
    username = data.get('username')
    Password = data.get('password')
    return HttpResponse(f'用户名{username},密码{Password}')
# FileResponse，定义下载函数
def downloadView(request):
    # 指定路径
    with open('C:/Users/86158/Desktop/1.jpg','rb') as f:
        response = FileResponse(
            f,
            # 定义文件名
            filename='1.jpg',
            # 定义文件类型
            content_type='image/mp4',
            # 强制浏览器弹出下载对话框
            as_attachment=True
        )
        return response

        # 设置响应头，告诉浏览器这是一个文件下载
        response['Content-Disposition'] = 'attachment;filename="1.jpg"'
        # 定义查询函数,用到模型类.objects.get()方法
        # 先查询再修改再保存
    # 定义查询函数,用到模型类.objects.get()方法
    # 先查询再修改再保存
    # 定义查询字符串，用到request.GET.get()方法
# product = get_object_or_404(Product)
# try:
#     def productselectView(request):
#         # 定义查询函数,用到模型类.objects.get()方法
#         # 先查询再修改再保存
#         product = Product.objects.get(pk=25) 
#         return HttpResponse(f'查询成功,名字为{product_name}')
# except Product.DoesNotExist：
#     return HttpResponse(“数据不存在，请重新查询”)

